package ec.linde.persistencia.entidades.proyectos;

import static javax.persistence.GenerationType.IDENTITY;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;

import ec.linde.persistencia.entidades.ProdCabeceraProforma;

/**
 * TODO: Agregar descripcion
 * 
 * @FechaCreacion: 29/09/2014
 * @author: Alex Carrillo
 * @FechaModificacion: 29/09/2014
 * @author: Alex Carrillo
 * @version: 1.0
 */
@Entity
@Table(name = "prod_proyecto_pro_sec", schema = "productividad")
public class ProyectoProformaSecundaria extends EntidadBase {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "prps_id", unique = true, nullable = false)
	private int idProyectoOfertaSecundaria;

	/**
	 * Relaciones
	 */
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "capr_id", nullable = false)
	@NotNull
	private ProdCabeceraProforma proforma;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "proy_id", nullable = true)
	private Proyecto proyecto;

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.asinfo.as2.entities.ProyectoBase#getId()
	 */
	@Override
	public int getId() {
		return idProyectoOfertaSecundaria;
	}

	/**
	 * Get del atributo idProyectoOfertaSecundaria
	 * 
	 * @return el valor del atributo idProyectoOfertaSecundaria
	 */
	public int getIdProyectoOfertaSecundaria() {
		return idProyectoOfertaSecundaria;
	}

	/**
	 * Set del atributo idProyectoOfertaSecundaria
	 * 
	 * @param idProyectoOfertaSecundaria
	 *            valor para asignar al atributo idProyectoOfertaSecundaria
	 */
	public void setIdProyectoOfertaSecundaria(int idProyectoOfertaSecundaria) {
		this.idProyectoOfertaSecundaria = idProyectoOfertaSecundaria;
	}

	/**
	 * Get del atributo proforma
	 * 
	 * @return el valor del atributo proforma
	 */
	public ProdCabeceraProforma getProforma() {
		return proforma;
	}

	/**
	 * Set del atributo proforma
	 * 
	 * @param proforma
	 *            valor para asignar al atributo proforma
	 */
	public void setProforma(ProdCabeceraProforma proforma) {
		this.proforma = proforma;
	}

	/**
	 * Get del atributo proyecto
	 * 
	 * @return el valor del atributo proyecto
	 */
	public Proyecto getProyecto() {
		return proyecto;
	}

	/**
	 * Set del atributo proyecto
	 * 
	 * @param proyecto
	 *            valor para asignar al atributo proyecto
	 */
	public void setProyecto(Proyecto proyecto) {
		this.proyecto = proyecto;
	}

}
